#include <REGX52.H>
#include "delay.h"

unsigned char Key_KeyNumber;

/**
  * @brief  获取按键键码
  * @param  无
  * @retval 按下按键的键码，范围：0,1~4,0表示无按键按下
  */
unsigned char Key(void)
{
	unsigned char Temp=0;
	Temp=Key_KeyNumber;
	Key_KeyNumber=0;
	return Temp;
}

/**
  * @brief  获取当前按键的状态，无消抖及松手检测
  * @param  无
  * @retval 按下按键的键码，范围：0,1~4,0表示无按键按下
  */
unsigned char keynumber()
{
	unsigned char key = 0;
	if(P3_1==0){key=1;}
	if(P3_0==0){key=2;}
	if(P3_2==0){key=3;}
	if(P3_3==0){key=4;}
	return key;
}

/**
  * @brief  按键驱动函数，在中断中调用
  * @param  无
  * @retval 无
  */
void Key_Loop()
{
	static unsigned char NowState,LastState;
	LastState = NowState;
	NowState = keynumber();//按下去已经获取了
	if(NowState == 0 && LastState == 1)//NowState更新的状态，检测松手，NowState就是0，上一个状态就是 按键的状态
	{
		Key_KeyNumber = 1;
	}
	if(NowState == 0 && LastState == 2)
	{
		Key_KeyNumber = 2;
	}
	if(NowState == 0 && LastState == 3)
	{
		Key_KeyNumber = 3;
	}
	if(NowState == 0 && LastState == 4)
	{
		Key_KeyNumber = 4;
	}
	
}